package cn.xerllent.wxtp.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import cn.xerllent.common.utils.jsonserializer.LocalDateTimeSerializer;
import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
@TableName (value="wxtp_report")
public class WxReport implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 报表id
	 * */	
	@TableId(value = "id", type = IdType.AUTO)
	private Long id;
	
	/**
	 * 企业id
	 * */	
	@TableField(value="corp_id")
	private String corpId;
	
	/**
	 * 应用id
	 * */	
	@TableField(value="suite_id")
	private String suiteId;
	
	/**
	 * 操作用户id
	 * */	
	@TableField(value="user_id")
	private String userid;

	/**
	 * 报表业务分类代码
	 * */	
	private String type;
	
	/**
	 * 报表生成参数快照
	 * */
	private String params;

	/**
	 * 报表标题
	 * */
	private String title;

	/**
	 * 待转译报表文件地址
	 * */
	private String filepath;
	
	/**
	 * 已上传媒体返回的id
	 * */
	@TableField(value="media_id")
	private String mediaId;
	
	/**
	 * 转译成功后的下载链接地址
	 * */
	private String url;

	/**
	 * 创建报表时间
	 * */
	@TableField(fill = FieldFill.INSERT)
	@JsonProperty(access = JsonProperty.Access.READ_ONLY)
	@JsonSerialize(using=  LocalDateTimeSerializer.class)
	private LocalDateTime createtime;
	
	/**
	 * 转译完成报表时间
	 * */
	@JsonSerialize(using=  LocalDateTimeSerializer.class)
	private LocalDateTime donetime;
	
	/**
	 * 报表生成状态：0记录已保存，1本地文件生成,2上传生成mediaid完成，3已提交转译，4，转译生成url完成。
	 * */
	private Integer status;

	/**
	 * id转译任务id
	 * */
	private String jobid;
	
    public @interface Update {
    }

}